package org.web.accesscontrollist.sdk.dto.query;

import lombok.Getter;
import lombok.Setter;
import org.web.base.domain.QueryBase;

import javax.validation.constraints.NotBlank;
import java.util.List;

@Setter
@Getter
public class QueryAclUserResourceBindingRequest extends QueryBase {


    /**
     * Exact query by aclResourceDefinitionId, The meaning of 'aclResourceDefinitionId' is 资源定义外键，定义表外键。
     */
    private Long aclResourceDefinitionId;


    /**
     * Exact query by aclResourceDetailId, The meaning of 'aclResourceDetailId' is 资源详情外键，资源信息唯一标识。
     */
    private Long aclResourceDetailId;

    /**
     * In query by aclResourceDetailId, The meaning of 'aclResourceDetailId' is 资源详情外键，资源信息唯一标识。
     */
    private List < Long > aclResourceDetailIdList;

    /**
     * Exact query by businessLine, The meaning of 'businessLine' is 业务线，内部权限管理都围绕业务线展开。
     */
    @NotBlank(message = "businessLine can't be blank. ")
    private String businessLine;

    /**
     * Exact query by definitionName, The meaning of 'definitionName' is 资源定义，用于资源定义，来源于资源定义。
     */
    @NotBlank(message = "definitionName can't be blank. ")
    private String definitionName;

    /**
     * In query by definitionName, The meaning of 'definitionName' is 资源定义，用于资源定义，来源于资源定义。
     */
    private List < String > definitionNameList;

    /**
     * Exact query by detailName, The meaning of 'detailName' is 资源详情名称，业务、资源定义、资源详情名称三者逻辑唯一。
     */
    private String detailName;

    /**
     * In query by detailName, The meaning of 'detailName' is 资源详情名称，业务、资源定义、资源详情名称三者逻辑唯一。
     */
    private List < String > detailNameList;

    /**
     * Exact query by roleName, The meaning of 'roleName' is 角色名称，缺省角色的定义，可通过acl_detai定义角色名称，ACL并不建立其逻辑关系。
     */
    private String roleName;

    /**
     * In query by roleName, The meaning of 'roleName' is 角色名称，缺省角色的定义，可通过acl_detai定义角色名称，ACL并不建立其逻辑关系。
     */
    private List < String > roleNameList;

    /**
     * Exact query by userNum, The meaning of 'userNum' is 用户ID，绑定资源用户的唯一标识。
     */
    @NotBlank(message = "userNum can't be blank. ")
    private String userNum;

    /**
     * In query by userNum, The meaning of 'userNum' is 用户ID，绑定资源用户的唯一标识。
     */
    private List < String > userNumList;

    /**
     * Exact query by userName, The meaning of 'userName' is 用户名称，绑定资源用户的名称。
     */
    private String userName;

    /**
     * Exact query by bindingStatus, The meaning of 'bindingStatus' is 绑定状态，ON表示生效，OFF表示不生效。
     */
    private String bindingStatus;

    /**
     * In query by bindingStatus, The meaning of 'bindingStatus' is 绑定状态，ON表示生效，OFF表示不生效。
     */
    private List < String > bindingStatusList;

    /**
     * Exact query by resourceLevel, The meaning of 'resourceLevel' is 资源等级，用树状结构描述资源。
     */
    private Long resourceLevel;

    /**
     * In query by resourceLevel, The meaning of 'resourceLevel' is 资源等级，用树状结构描述资源。
     */
    private List < Long > resourceLevelList;

    /**
     * Exact query by firstLevel, The meaning of 'firstLevel' is 一级，描述一级资源内容。
     */
    private String firstLevel;

    /**
     * In query by firstLevel, The meaning of 'firstLevel' is 一级，描述一级资源内容。
     */
    private List < String > firstLevelList;

    /**
     * Exact query by secondLevel, The meaning of 'secondLevel' is 二级，描述二级资源内容。
     */
    private String secondLevel;

    /**
     * In query by secondLevel, The meaning of 'secondLevel' is 二级，描述二级资源内容。
     */
    private List < String > secondLevelList;

    /**
     * Exact query by thirdLevel, The meaning of 'thirdLevel' is 三级，描述三级资源内容。
     */
    private String thirdLevel;

    /**
     * In query by thirdLevel, The meaning of 'thirdLevel' is 三级，描述三级资源内容。
     */
    private List < String > thirdLevelList;

    /**
     * Exact query by fourthLevel, The meaning of 'fourthLevel' is 四级，描述四级资源内容。
     */
    private String fourthLevel;

    /**
     * In query by fourthLevel, The meaning of 'fourthLevel' is 四级，描述四级资源内容。
     */
    private List < String > fourthLevelList;

    /**
     * Exact query by fifthLevel, The meaning of 'fifthLevel' is 五级，描述五级资源内容。
     */
    private String fifthLevel;

    /**
     * In query by fifthLevel, The meaning of 'fifthLevel' is 五级，描述五级资源内容。
     */
    private List < String > fifthLevelList;

    /**
     * Exact query by operatorNum, The meaning of 'operatorNum' is 操作员，上次修改记录的操作人员工号，唯一标识操作人员。
     */
    private String operatorNum;

    /**
     * In query by operatorNum, The meaning of 'operatorNum' is 操作员，上次修改记录的操作人员工号，唯一标识操作人员。
     */
    private List < String > operatorNumList;

    /**
     * Exact query by operatorName, The meaning of 'operatorName' is 操作员，上次修改记录的操作人员名称。
     */
    private String operatorName;




}
